﻿/*****************************************************************//**
 * @file   VAOneXMLAdaptorSeaPlateShell.h
 * @brief  VAOne读写SEA平板适配器
 * 
 * @author lixiaolong (lixiaolong@diso.cn)
 * @date   2024-11-7
 *********************************************************************/
#ifndef VAONEXMLADAPTORSEAPLATESHELL_H
#define VAONEXMLADAPTORSEAPLATESHELL_H

#include "FITKVAOneXMLIOAPI.h"
#include "FITKAbstractVAOneXMLAdaptor.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
#include "FITKAcousticsModel/FITKAbstractSEASubSys.h"
#include "VAOneXMLAdaptorSeaShell.h"

namespace Acoustics
{
    class FITKAcousticsSEASubSysManager;
}

namespace IO
{
    /**
     * @brief   VAOne读写板适配器
     * @author  lixiaolong (lixiaolong@diso.cn)
     * @data    2024-11-7
     */
    class FITKVAOneXMLIOAPI VAOneXMLAdaptorSeaPlateShell : public VAOneXMLAdaptorSeaShell
    {
        FITKCLASS(IO, VAOneXMLAdaptorSeaPlateShell);
    public:

        /**
         * @brief   构造函数
         * @author  lixiaolong (lixiaolong@diso.cn)
         * @data    2024-11-7
         */
        explicit VAOneXMLAdaptorSeaPlateShell()= default;

        /**
         * @brief   析构函数
         * @author  lixiaolong (lixiaolong@diso.cn)
         * @data    2024-11-7
         */
        ~VAOneXMLAdaptorSeaPlateShell() = default;

    protected:
        /**
         * @brief getNodeName 获取xml节点名字
         * @return  xml节点名字 类型无效时需子类自己实现adaptR和adaptW 有效时根据实际数据重新实现读写接口
         * @author  lixiaolong (lixiaolong@diso.cn)
         * @date    2024-11-8
         */
        virtual QString getNodeName() override;

        /**
         * @brief getNodeType 获取节点类型
         * @return  节点类型 类型无效时需子类自己实现adaptR和adaptW 有效时根据实际数据重新实现读写接口
         * @author  lixiaolong (lixiaolong@diso.cn)
         * @date    2024-11-8
         */
        virtual Acoustics::FITKAbstractSEASubSys::SEASubSysType getNodeType() override;

        /**
         * @brief createDataObjNode 创建数据节点
         * @return 数据节点实例
         * @author  lixiaolong (lixiaolong@diso.cn)
         * @date    2024-11-8
         */
        virtual Acoustics::FITKAbstractSEASubSysShell *createDataObjNode() override;

    private:
    };

    Register2FITKIOAdaptorFactory(VAOneXMLPlateShell, Acoustics::FITKAcousticsSEASubSysManager, VAOneXMLAdaptorSeaPlateShell)
}

#endif // VAONEXMLADAPTORSEAPLATESHELL_H
